██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
XML-RPC
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwawXML-RPC è un mwbaprotocollo utilizzato in informatica che permette di eseguire delle chiamate a procedure remote (mwbqRPC) attraverso la rete mwbgInternet.
Questo protocollo si basa sullo standard mwcaXML per codificare la richiesta che viene trasportata mediante il protocollo mwcqHTTP o mwcgHTTPS. Nonostante la sua semplicità, permette di trasmettere mwcwstrutture dati complesse, chiederne l'esecuzione e averne indietro il risultato.
Contents
• Utilizzo
• Esempi
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Utilizzo
XML-RPC funziona inviando una richiesta HTTP al mwdwserver che implementa il protocollo. Il mweaclient in questo caso è tipicamente del software che vuole invocare un singolo metodo su di un sistema remoto. Al metodo remoto possono essere passati parametri di input multipli e viene restituito un solo valore di ritorno. I tipi di parametri permettono di nidificare i parametri stessi in liste e mappe, in modo da poter trasportare strutture di più grandi dimensioni. Quindi XML-RPC può essere utilizzato per trasportare oggetti o strutture sia come parametri di input che per restituire i valori di output.
L'"identificazione" del client per scopi di autorizzazione può essere ottenuta utilizzando i noti metodi di sicurezza di HTTP. Per l'identificazione viene utilizzata la mwegbasic access authentication, mwewHTTPS viene invece utilizzato quando si ha necessità di identificazione (attraverso certificati) e messaggi criptati. Entrambi i metodi possono comunque essere combinati. A differenza di mwfaREST, in cui vengono trasferite "rappresentazioni di risorse" (documenti) XML-RPC è progettato per "invocare metodi".
XML-RPC è più semplice da utilizzare e da capire rispetto a mwfgSOAP perché:
• Permette un solo modo per serializzare i metodi, invece SOAP definisce molti encodings differenti.
• Ha un modello di sicurezza più semplice.
• Non richiede (né supporta) la creazione di descrizioni di servizio mwgwWSDL, sebbene mwhaXRDL offra un semplice subset delle funzionalità fornite da WSDL.
JSON-RPC è molto simile ad XML-RPC, la differenza sostanziale sta nel fatto che i dati vengono incapsulati in pacchetti mwhwJSON anziché XML.
Tipi di dato
I mwigtipi di dato più comuni possono essere convertiti nel loro equivalente XML secondo gli esempi mostrati di seguito:
| Nome | Esempio | Descrizione |
|---|---|---|
| array | <array> <data> <value><i4> 1404 </i4></value> <value><string> Something here </string></value> <value><i4> 1 </i4></value> </data> </array> | Array non associativo (senza chiavi) |
| base64 | <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> | Dati binari codificati in Base64 |
| boolean | <boolean> 1 </boolean> | Booleano (0 or 1) |
| date/time | <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> | Data e ora in formato ISO 8601 |
| double | <double> -12.53 </double> | Double, numero in virgola mobile |
| integer | <int> 42 </int> o <i4> 42 </i4> | Numero intero |
| string | <string> Hello world! </string> o Hello world! | Stringa di caratteri. Deve seguire le regole di codifica di XML. |
| struct | <struct> <member> <name> foo </name> <value><i4> 1 </i4></value> </member> <member> <name> bar </name> <value><i4> 2 </i4></value> </member> </struct> | Array associativo |
| nil | <nil/> | Valore nullo |
Esempi
Un esempio di richiesta XML-RPC tipica può essere:
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getStateName</methodName>
<params>
<param>
<value><i4>40</i4></value>
</param>
</params>
</methodCall>
Se la richiesta va in porto, XML-RPC produrrà una risposta del tipo:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>South Dakota</string></value>
</param>
</params>
</methodResponse>
Altrimenti la risposta sarà del tipo:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>4</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Troppi parametri.</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Voci correlate
• mwaqqChiamata di procedura remota
• mwaqySOAP
• mwaqggRPC
• Cap'n Proto
• mwaqwApache Thrift
• Apache Avro
• JSON-RPC
Collegamenti esterni
• mwarqxmlrpc.com. URL consultato il 10 dicembre 2006 (archiviato dall'url originale il 25 aprile 2022).